1. Field of the Invention
The present disclosure relates generally to the acquisition and tracking of broadcast pseudo random codes, in particular but not exclusively to codes transmitted as part of a GPS signal.
2. Description of the Related Art
The Global Position System (GPS) is a well-known system which uses broadcast pseudo random codes to allow receivers to determine time differences, and hence relative positions, between a transmitter and receiver. The transmitters are satellites orbiting the earth in known orbit paths whose position at any given time is accurately known. Using received signals from four such satellites, a receiver can unambiguously determine its position using trigonometry to an accuracy dependent upon the repetition rate of the code, accuracy of components and other factors, such as the atmosphere and multipath reflections.
To increase accuracy, more than the minimum of four reference transmitters are usually tracked. There are around 24 satellites available for tracking in the GPS system, of which 8 are specified to be Avisible@ by a receiver at any given time. In fact, GPS receivers typically include 12 channels to allow up to 12 satellites to be tracked at once.
GPS satellites transmit two L-Band signals which can be used for positioning purposes. The reasoning behind transmitting using two different frequencies is so that errors introduced by ionospheric refraction can be eliminated.
The signals, which are generated from a standard frequency of 10.23 MHz, are L1 at 1575.42 MHz and L2 at 1227.60 MHz and are often called the carriers.
The frequencies are generated from the fundamental satellite clock frequency of f0=10.23 MHz.
SignalFrequency (MHz)Wavelength (cm)L1154fo = 1575.42~19L2120fo = 1227.60~24
Since the carriers are pure sinusoids, they cannot be used easily for instantaneous positioning purposes and therefore two binary codes are modulated onto them: the C/A (coarse/acquisition) code and P (precise) code.
Also it is necessary to know the coordinates of the satellites and this information is sent within the broadcast data message which is also modulated onto the carriers.
The coarse/acquisition (CA) code was so named as it was originally designed as a coarse position measurement signal on its own, or as an acquisition code to assist in looking onto the phase of the precise code. However, the CA code is now used generally both for acquisition and for position tracking, and so will be referred to simply as the CA code herein.
The C/A code is a pseudo random (PN) binary code (states of 0 and 1) having 1,023 elements, or chips, that repeats itself every millisecond. The term pseudo random is used since the code is apparently random although it has been generated by means of a known process, hence the repeatability.
Due to the chipping rate (the rate at which each chip is modulated onto the carrier) of 1.023 Mbps, the chip length corresponds to approximately 300 m in length and due to the code length, the ambiguity is approximately 300 km—i.e., the complete C/A code pattern repeats itself every 300 km between the receiver and the satellite.
The code is generated by means of a linear feedback register which is a hardware device representing a mathematical PRN algorithm.
The sequences that are used are known as Gold codes which have particularly good autocorrelation and cross correlation properties. The cross correlation properties of the gold codes are such that the correlation function between two different sequences is low—this is how GPS receivers distinguish between signals transmitted from different satellites.
The receiver needs to know the actual position of satellites in addition to knowing its relative position to them, and for that reason a data message is broadcast. The data message includes information describing the positions of the satellites and their health status.
Each satellite sends a full description of its own orbit and clock data (within the ephemeris information) and an approximate guide to the orbits of the other satellites (contained within the almanac information).
The data is modulated at a much slower rate of 50 bps and thus it takes 12.5 minutes to transmit all of the information. To reduce the time it takes to obtain an initial position, the ephemeris and clock data is repeated every 30 seconds. Parameters representing the delay caused by signal propagation through the ionosphere are also included within the data message.
The broadcast data message is modulo-2 added to the C/A code. This inverts the code and has the effect of also inverting the signal after correlation allowing the data to be recovered.
Binary biphase modulation (also known as binary phase shift keying [BPSK]) is the technique that is used to modulate the codes onto the initial carrier waves.
The codes are now directly multiplied with the carrier, which results in a 180 degree phase shift of the carrier every time the state of the code changes.
The modulation techniques also have the properties of widening the transmitted signal over a much wider frequency band than the minimum bandwidth required to transmit the information which is being sent. This is known as spread spectrum modulation and has the benefits of developing processing gain in the despreading operation within the receiver, and it helps prevent possible signal jamming.
The L1 signal is modulated by both the C/A code and the P code, though only the CA code is relevant to the present description. This is done by modulating one code in phase and the other in quadrature (i.e., they are at 90 degrees to each other).
A representation of the CA code, data message bits and the resultant signal spectrum is shown in FIG. 1. As can be seen, the thermal noise level is higher than the actual signal level. In fact, the thermal noise is around −110 dB per MHz whereas the signal itself is around −130 dB. To extract the CA code from the noise, use is made of the fact that the CA code is a known sequence and correlation is performed. The function performed is to integrate the received signal with a locally generated version of the CA code, as follow:
                                          ∫            0                          20              ⁢                                                          ⁢              m              ⁢                                                          ⁢              s                                ⁢                                    (                              signal                +                noise                            )                        ×            CA            ⁢                                                  ⁢            code                          ⁢                                  =                ⁢                              ∫            0                          20              ⁢                                                          ⁢              m              ⁢                                                          ⁢              s                                ⁢                                    (                              carrier                ×                data                ×                CA                ⁢                                                                  ⁢                code                            )                        ×                                                          ⁢                              CA            ⁢                                                  ⁢            code                    +                                    ∫              0                              20                ⁢                                                                  ⁢                m                ⁢                                                                  ⁢                s                                      ⁢                                          (                noise                )                            ×              CA              ⁢                                                          ⁢              code                                                              =                ⁢                                            ∫              0                              20                ⁢                                                                  ⁢                m                ⁢                                                                  ⁢                s                                      ⁢                          (                              carrier                ×                data                ×                1                            )                                +                      (            0            )                              
As can be seen, the integration of white noise over the integration period is substantially zero, whereas the integration of the CA code×CA code is 1.
The result of the integration is that the noise component does not increase in signal level, but that (carrier×data component CA code is increased by 20,000=+43 dB. The signal to noise ratio is now:−130 dB (signal) +110 dB (noise)+43 dB (integration gain)=+23 dB
The signal energy thereby becomes distinguishable from the noise. A digital signal processor 10 for performing the above function is shown in FIG. 2. Prior to digital processing, the received radio frequency (RF) signal is filtered within a radio chip (FIG. 2a) to reject parts of the signal not in the L1 bandwidth (a filter with central frequency 1575 MHz and bandwidth 20 MHz or narrower). The signal is then mixed with a sinusoid generated by a local oscillator, resulting in the generation of a signal with sum and difference frequency components. A further filter of around 2 MHz bandwidth selects the desired signal. The signal produced is an IF signal which is sampled by the downconverter 12 at a rate defined by the clock generator 14 to convert to digital. The rate is typically a multiple of 1.023 MHz which is the CA code chip rate (in this case 4.092 MHz).
The signal is then copied and sent into typically 12 separate channels 16, each channel being arranged to extract the code and carrier information for a particular satellite. A replica of the CA code for the particular satellite is generated by a prn 18 and correlated with the signal in each channel 16. Two replica codes are actually used for the correlations; one delayed (late) and one advanced (early). The early and late codes lie on the slope of the correlation function either side of the peak, and are used in continuous tracking of the code to reduce tracking error. The signal is then processed for the data modulation and carrier phase measurements. A locally generated carrier is generated by a numerically controlled oscillator (NCO) 22 and a second downconverter 20 used to reject images prior to an output block 24.
When correlating to acquire the signal the time and hence code phase of the incoming signal is an unknown. It is necessary, therefore, to compare 2×1,023=2,046 acquisition samples of the CA code signal for every possible relative position of the incoming and locally generated CA codes, with an integration period of typically 1 millisecond. It thus takes around 2 seconds to acquire the first satellite using one channel. Thereafter the position of the sequence is known and tracking requires only two correlations, rather than 2046, to maintain the tracking position within a few nanoseconds window of the early and late measurements.
We have appreciated the need for a large number of correlations for acquisition of signals, but only a few correlations to track the signals after acquisition. We have further appreciated disadvantages of known solutions which use large numbers of correlators.